package generics

//这是用于泛型的学习

//可以看到结构是： func 函数名[声明可能的类型]（传过来的形参） 返回值 {}
func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V {
	var s V
	for _, v := range m {
		s += v
	}
	return s
}

//以下为第二种方式，相比于上面的方式，以下的声明方式，会让函数那一块更简洁
type Number interface {
	int64 | float64
}

func SumNumbers[K comparable, V Number](m map[K]V) V {
	var s V
	for _, v := range m {
		s += v
	}
	return s
}
